﻿using System;
using System.Collections.Generic;
using OTA.Notification.Entity.Dictionary;
using Strive.Interface.IDataAccessBase.DAO;
using Strive.DataAccess.Base.Model.PageObject;
using Strive.DataAccess.Base.Model.SearcherObject;

namespace OTA.Notification.Interface.IDAO.Dictionary
{
    public interface IDictionaryDao:IBaseDAOBean<int,OTA_DICTIONARY>
    {
        /// <summary>
        /// 获得单独一条信息
        /// </summary>
        /// <param name="id">id</param>
        /// <returns></returns>
        OTA_DICTIONARY getDictionary(int _id);

        /// <summary>
        /// 获得单独一条信息
        /// </summary>
        /// <param name="_type">类型</param>
        /// <param name="_code">编号</param>
        /// <param name="_value">值</param>
        /// <returns></returns>
        OTA_DICTIONARY getDictionary(string _type, string _code, string _value);

        /// <summary>
        /// 获得单独一条信息
        /// </summary>
        /// <param name="_type">类型</param>
        /// <param name="_code">编号</param>
        /// <param name="_value">值</param>
        /// <param name="_id">编号</param>
        /// <returns></returns>
        OTA_DICTIONARY getDictionary(string _type, string _code, string _value,string _id);

        /// <summary>
        /// 返回描述
        /// </summary>
        /// <param name="_type">类别</param>
        /// <param name="_code">编码</param>
        /// <param name="_value">值</param>
        /// <param name="languagetype"></param>
        /// <returns></returns>
        string getName(string _type, string _code, string _value, string _languagetype);


        /// <summary>
        /// 获得一类信息
        /// </summary>
        /// <param name="_code">编码</param>
        /// <param name="_type">类别</param>
        /// <param name="_languagetype">语言</param>
        /// <returns></returns>
        IList<OTA_DICTIONARY> getAllDictionary(string _code, string _type, string _languagetype);

        PageResult<OTA_DICTIONARY> getDictionaryPageList(BasePageSearch pageObject);

        string clearBadtree();

        bool insertDictionary(OTA_DICTIONARY _dict);
        bool updateDictionary(OTA_DICTIONARY _dict);
        bool deleteDictionary(int _id);
    }
}
